package com.bjsxt;

import java.util.Set;
import java.util.TreeSet;

/**通过比较器实现比较规则
 *通过比较器定义规则时，我们需要单独创建一个比较器，比较器需要实现comparator接口
 * 中的compare 方法来定义比较规则，在实例化TreeSet时将比较器对象交给TreeSet
 * 来完成元素的排序处理。此时元素自身就不需要实现规则了*/
/*1，创建比较器 2，创建类 3，在TreeSet 中存储对象 实现Comparator接口*/
public class TestTreeSet02 {
    public static void main(String[] args) {
        //直接把比较器StudentComparator 通过构造器方法传入TreeSet 进行compare方法的比较
        //就会按我们定义的规则进行排序
        Set<Student> set = new TreeSet<>(new StudentComparator());
        Student stu = new Student("zhang",22);
        Student stu1 = new Student("li",18);
        Student stu2 = new Student("admin",22);
        set.add(stu);
        set.add(stu1);
        set.add(stu2);
        for(Student student: set){
            System.out.println(student);
        }
        System.out.println("--------------");
        Set<Student02> set1 = new TreeSet<>(new StudentComparator02());
        Student02 s = new Student02("huan",30);
        Student02 s1 = new Student02("yang",18);
        Student02 s2 = new Student02("lei",18);
        set1.add(s);
        set1.add(s1);
        set1.add(s2);
        for(Student02 stu02:set1){
            System.out.println(stu02);
        }
    }
}
